# SPDX-License-Identifier: MIT

## Pre-commit setup

repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v4.4.0
    hooks:
      - id: check-case-conflict
      - id: check-toml
      - id: check-yaml
      - id: end-of-file-fixer
      - id: trailing-whitespace
        args: [--markdown-linebreak-ext=md]

  - repo: local
    hooks:
      - id: no-symlinks
        name: no symlinks
        description: "Check for symlinks"
        entry: "symlinks may not be committed due to platform support"
        language: fail
        types: [symlink]
      - id: changelogs-name
        name: check changelog fragment name
        entry: changelog filenames should be formatted like `<issue>.<type>.rst`
        language: fail
        files: 'changelog/'
        exclude: '/(\d+\.[a-z]+(\.\d+)?\.rst|_template.rst.jinja|README.rst)$'
      - id: spdx-licensing
        name: SPDX License Identifiers
        description: Check for the SPDX-License-Identifier in each file.
        language: pygrep
        entry: 'SPDX-License-Identifier: '
        args: [--negate]
        types: [text]
        exclude_types: [json, pofile]
        exclude: 'changelog/|py.typed|disnake/bin/COPYING|.github/PULL_REQUEST_TEMPLATE.md|.github/CODEOWNERS|LICENSE|MANIFEST.in'

  - repo: https://github.com/pycqa/isort
    rev: 5.12.0
    hooks:
      - id: isort
        args: ["--profile", "black", "--extend-skip", "examples"]
        name: "run isort in all files"
        exclude: ^examples/
      - id: isort
        args: ["--profile", "black", "--thirdparty", "disnake"]
        name: "run isort in examples"
        files: ^examples/

  - repo: https://github.com/psf/black-pre-commit-mirror
    rev: 23.9.1
    hooks:
      - id: black
        name: "run black in all files"

  - repo: https://github.com/charliermarsh/ruff-pre-commit
    rev: v0.0.292
    hooks:
      - id: ruff
